package com.tonghe.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.tonghe.domain.entity.Menu;

import java.util.List;


/**
 * 菜单权限表(Menu)表服务接口
 *
 * @author tonghe
 * @since 2022-09-03 15:02:15
 */
public interface MenuService extends IService<Menu> {

    /**
     * 查询用户权限
     *
     * @param id 用户id
     * @return 可用权限列表
     */
    List<String> selectPermsByUserId(Long id);

    /**
     * 查询用户可用菜单/路由
     *
     * @param userId 用户id
     * @return 可用‘路由/菜单’列表
     */
    List<Menu> selectRouterMenuTreeByUserId(Long userId);

    /**
     * 获取所有菜单
     *
     * @param menu 菜单实体
     * @return 一大堆菜单
     */
    List<Menu> selectMenuList(Menu menu);

    /**
     * 查询菜单列表
     *
     * @param roleId 角色id号
     * @return MenuList
     */
    List<Long> selectMenuListByRoleId(Long roleId);

    /**
     * 是否有子菜单
     *
     * @param menuId 用户名称
     * @return 是否有子菜单
     */
    boolean hasChild(Long menuId);
}
